// 写图片到本地
export const writeFile=(base64Str=> {
  return new Promise((resolve,reject)=>{
    let base64Image =  base64Str.replace(/[\r\n]/g, ''); // 后台返回的base64数据的回车换行换为空字符''
    const fsm = wx.getFileSystemManager();  //文件管理器
    const FILE_BASE_NAME = 'tmp_base64src'; //文件名
    const format = 'png'; //文件后缀
    const timestamp = (new Date()).getTime();//获取一个当前时间戳，用于区分每一个小程序码，防止多次写进的小程序码图片都一样（建议通过不同的商品id来区分不同的小程序码）
    const buffer = wx.base64ToArrayBuffer(base64Image),//base 转二进制
    filePath = `${wx.env.USER_DATA_PATH}/${timestamp}www.${format}`; //文件名
    fsm.writeFile({ //写文件
      filePath,
      data: buffer,
      encoding: 'binary',
      success(res) {
        wx.getImageInfo({ //读取图片
          src: filePath,
          success: function(res) {
            let img = res.path;
            resolve(img);//把需要画出来的图片的临时url暴露出去
            reject();
          },
          fail(e){
            wx.showToast({
              icon: "none",
              title: `读取图片报错`,
              duration: 1000
            })
            console.log(e);
          },
          error(res) {
            console.log(res)
          }
        })
      },
      fail(e){
        console.log(e);
      }
    })
  }).catch((e)=>{
    console.log(e);
  })
})
export const removeSave = () =>{
  return new Promise((resolve)=>{
    // 把文件删除后再写进，防止超过最大范围而无法写入
    const fsm = wx.getFileSystemManager();  //文件管理器
    fsm.readdir({  // 获取文件列表
      dirPath: wx.env.USER_DATA_PATH,// 当时写入的文件夹
      success(res){
        res.files.forEach((el) => { // 遍历文件列表里的数据
          // 删除存储的垃圾数据
          fsm.unlink({
            filePath: `${wx.env.USER_DATA_PATH}/${el}`, // 这里注意。文件夹也要加上，如果直接文件名的话会无法找到这个文件
            fail(e){
              // console.log('readdir文件删除失败：',e)
            }
          });
        })
        resolve()
      }
    })
  })
}